From: Phlosioneer Date: Mon, 16 Apr 2018 20:59:22 +0000 (-0400) Subject: Add compile-time check for ExactSizeIterator X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~1^2~68^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=5e556873f4666f79c434fbfc95572e66e3731933;p=cargo.git Add compile-time check for ExactSizeIterator --- diff --git a/src/cargo/core/resolver/resolve.rs b/src/cargo/core/resolver/resolve.rs index 48f1aebe4..b0468bd69 100644 --- a/src/cargo/core/resolver/resolve.rs +++ b/src/cargo/core/resolver/resolve.rs @@ -205,12 +205,10 @@ impl<'a> Iterator for Deps<'a> { } fn size_hint(&self) -> (usize, Option) { - match self.edges { - // Note: Edges is actually a std::collections::hash_set::Iter, which - // is an ExactSizeIterator. - Some(ref iter) => iter.size_hint(), - None => (0, Some(0)), - } + // Note: Edges is actually a std::collections::hash_set::Iter, which + // is an ExactSizeIterator. + let len = self.edges.as_ref().map(ExactSizeIterator::len).unwrap_or(0); + (len, Some(len)) } } @@ -228,12 +226,10 @@ impl<'a> Iterator for DepsNotReplaced<'a> { } fn size_hint(&self) -> (usize, Option) { - match self.edges { - // Note: Edges is actually a std::collections::hash_set::Iter, which - // is an ExactSizeIterator. - Some(ref iter) => iter.size_hint(), - None => (0, Some(0)), - } + // Note: Edges is actually a std::collections::hash_set::Iter, which + // is an ExactSizeIterator. + let len = self.edges.as_ref().map(ExactSizeIterator::len).unwrap_or(0); + (len, Some(len)) } }